﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TupleGeo.GIS.SpatialSchema {

  /// <summary>
  /// 
  /// </summary>
  public interface ISpatialRelation {

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Equals(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Disjoint(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Intersects(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Touches(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Crosses(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Within(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Contains(Geometry other);

    /// <summary>
    /// 
    /// </summary>
    /// <param name="other"></param>
    /// <returns></returns>
    bool Overlaps(Geometry other);

  }

}
